Skip to content

Give a vulnerability somewhere private to go - #32

Merged
revtex merged 1 commit into
mainfrom
chore/security-setup
Aug 15, 2026
Merged

Give a vulnerability somewhere private to go#32
revtex merged 1 commit into
mainfrom
chore/security-setup

Conversation

@revtex

@revtex revtex commented Aug 15, 2026

Copy link
Copy Markdown
Owner

The Security tab was empty — no policy, no private reporting, no scanning. A repository that has just gone public, and that asks users to supply their own Spotify and Last.fm credentials, shouldn't leave a finder's only options as a public issue or an email address they have to guess.

In this PR

  • SECURITY.md — where to report (private vulnerability reporting, not an issue), what's supported (main; there are no releases yet), and what actually deserves attention: track metadata is untrusted input that reaches ffmpeg arguments, file names and directory paths; sign-in is PKCE with no client secret and a validated state; the refresh token is DPAPI-protected and the access token never touches disk; the routing interop marshals HSTRINGs by hand, where memory-safety mistakes are plausible in a way they aren't elsewhere in managed code. Plus what's deliberate — the Last.fm key is plain text in settings.json, being a read-only key for a public catalogue that belongs to the user.
  • .github/workflows/codeql.yml — C#, the workflows themselves, and the one Python script, on pushes to main, on PRs, and weekly. Ubuntu with build-mode: none, deliberately: the analysis extracts C# without compiling it, so it needs neither WPF nor the Windows SDK nor a WASAPI-capable machine. Building it on that runner is the one step that could not work.

Already enabled on the repository (API, not in this diff)

Setting State
Private vulnerability reporting Enabled
Dependabot alerts Enabled
Dependabot security updates Enabled
Secret scanning Enabled
Secret scanning push protection Enabled

Non-provider patterns and validity checks stayed off — those are GitHub Advanced Security features, not available on this plan.

🤖 Generated with Claude Code

The Security tab was empty: no policy, no private reporting, no scanning. A
repository that has just gone public and asks users for their own Spotify and
Last.fm credentials should not leave a finder's only options as a public issue
or an email address they have to guess.

SECURITY.md names the reporting channel and, more usefully, says what is worth
looking at: track metadata is untrusted input that reaches ffmpeg arguments,
file names and directory paths; sign-in is PKCE with no client secret; the
refresh token is DPAPI-protected and the Last.fm key deliberately is not; and
the routing interop marshals HSTRINGs by hand, where memory-safety mistakes are
plausible in a way they are not elsewhere in managed code.

CodeQL runs on Ubuntu with build-mode: none, which reads C# without compiling
it — the only arrangement that can scan a Windows-only WPF app on a Linux
runner. Private reporting, Dependabot alerts and updates, and secret scanning
with push protection were enabled on the repository itself.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@revtex
revtex merged commit 93ad360 into main Aug 15, 2026
6 checks passed
@revtex
revtex deleted the chore/security-setup branch August 15, 2026 01:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants